﻿using SIIE_ERP.BaseDatos;
using SIIE_ERP.BaseDatos.Configuracion;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SIIE_ERP.Codigo.Ventas;

namespace SIIE_ERP.Codigo.Ventas
{
    public class ValidacionTimbrado
    {

        //Saber si su licencia es perpetua y ademas si esta ya paso el año de timbrados gratis
       public bool tipoLicencia(string RFC, int IdUsuario,DateTime vencimiento)
        {
           
                
            var genero = dbo_Sec_Usuario_RFC.Get_Sec_Usuario_RFC_By_RFC(RFC).Rows;
                 
            for (int i = 0; i < genero.Count; i++)
            {
                string[] fechas = CypherClass.DescifrarTexto(genero[i]["Genero"].ToString()).Split('|');
                    if (fechas[3].ToString().Equals("Perpetua"))
                    {
                        //
                        if (fechas[5].ToString().Equals("1"))
                        {
                            var x = DateTime.Now.Year - Convert.ToDateTime(fechas[4]).AddYears(1).Year;
                           if (x < 1 || DateTime.Now < vencimiento) return true;
                        }
                    }
            }
            return false;
        }


        public static DataRow fechaLicenciaPerpetua(string RFC)
        {
            var genero = dbo_Sec_Usuario_RFC.Get_Sec_Usuario_RFC_By_RFC(RFC).Rows;

            DataTable dt = new DataTable();
            dt.Clear();
            dt.Columns.Add("Id");
            dt.Columns.Add("fecha");
            dt.Columns.Add("Usuario");
            dt.Columns.Add("TipoLicencia");
            dt.Columns.Add("primerPermanente");
            for (int i = 0; i < genero.Count; i++)
            {
                string[] fechas = CypherClass.DescifrarTexto(genero[i]["Genero"].ToString()).Split('|');
                if (fechas[5].ToString().Equals("1"))
                {
                    DataRow _ravi = dt.NewRow();
                    _ravi["Id"] = genero[i]["Id_Usuario"].ToString();
                    _ravi["Usuario"] = fechas[1].ToString();
                    _ravi["TipoLicencia"] = fechas[3].ToString();
                    _ravi["fecha"] = Convert.ToDateTime(fechas[4]).AddYears(1).ToString();
                    dt.Rows.Add(_ravi);
                }
            }
            return dt.AsEnumerable().First();
        }

        public static DataRow fechaLicenciaAnualMensual(string RFC)
        {
            var genero = dbo_Sec_Usuario_RFC.Get_Sec_Usuario_RFC_By_RFC(RFC).Rows;

            DataTable dt = new DataTable();
            dt.Clear();
            dt.Columns.Add("Id");
            dt.Columns.Add("fecha");
            dt.Columns.Add("Usuario");
            dt.Columns.Add("TipoLicencia");
            for (int i = 0; i < genero.Count; i++)
            {
                string[] fechas = CypherClass.DescifrarTexto(genero[i]["Genero"].ToString()).Split('|');

                DataRow _ravi = dt.NewRow();
                _ravi["Id"] = genero[i]["Id_Usuario"].ToString();
                _ravi["Usuario"] = fechas[1].ToString();
                _ravi["TipoLicencia"] = fechas[3].ToString();
                _ravi["fecha"] = fechas[0].ToString();//fechaLicencia

                dt.Rows.Add(_ravi);
            }

            var tipoFecha = from d in dt.AsEnumerable() orderby Convert.ToDateTime(d.Field<string>("fecha")) descending select d;
            return tipoFecha.First();

        }




       
    }
}
